package org.wdcode.back.helper;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;

import org.wdcode.back.cache.MenuCache;
import org.wdcode.back.po.Menu;
import org.wdcode.base.helper.BaseEntityCacheHelper;
import org.wdcode.common.tools.Maps;

/**
 * 菜单相关业务助手类 可操作缓存
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-23
 */
public final class MenuHelper extends BaseEntityCacheHelper<MenuCache, Menu> {
	// 菜单助手
	private static MenuHelper									helper;
	// 用户权限列表
	private ConcurrentMap<Integer, Map<Integer, List<Integer>>>	userMenu;

	/**
	 * 构造方法
	 */
	public MenuHelper() {
		userMenu = Maps.getConcurrenrMap();
	}

	/**
	 * 设置用户权限列表
	 * @param key 键
	 * @param menu 用户菜单
	 */
	public void setUserMenu(int key, Map<Integer, List<Integer>> menu) {
		userMenu.put(key, menu);
	}

	/**
	 * 设置用户权限列表
	 * @param uid 键
	 * @param operate 用户菜单
	 */
	public Map<Integer, List<Integer>> getUserMenu(int uid) {
		// 返回权限列表
		return userMenu.get(uid);
	}

	/**
	 * 实例化一个对象
	 */
	public Menu newInstance() {
		return new Menu();
	}

	/**
	 * 获得子类的Class
	 * @return 子类的Class
	 */
	public Class<Menu> getEntityClass() {
		return Menu.class;
	}

	/**
	 * 获得菜单助手
	 * @return 菜单助手
	 */
	public static MenuHelper getHelper() {
		return helper;
	}

	/**
	 * 设置菜单助手
	 * @param helper 菜单助手
	 */
	public void setHelper(MenuHelper helper) {
		MenuHelper.helper = helper;
	}
}
